﻿using FluentNHibernate.Mapping;
using SOLInfo.GEN.Domain.Entities;
using SOLInfo.GEN.Domain.VO;

namespace SOLInfo.GEN.Repository.Mappings
{
    public class EnderecoMapping : ClassMap<Endereco>
    {
        public EnderecoMapping()
        {
            Id(x => x.Codigo);
            Map(x => x.Logradouro)
                .Length(50)
                .Not.Nullable();
            Map(x => x.Bairro);
            Map(x => x.CEP);
            Map(x => x.Cidade);
            Map(x => x.Complemento);
            Map(x => x.TipoLogradouro).CustomType<TipoLogradouroEnum>();
            HasOne<Empresa>(x => x.oEmpresa);
            Component<Estado>(c => c.Estado, m =>
            {
                m.Map(x => x.Nome, "EstadoNome");
                m.Map(x => x.Sigla, "EstadoSigla");
            });

            Component<Manutencao>(x => x.Criacao, MappingBase.MapManutencao("Criacao"));
            Component<Manutencao>(x => x.UltimaAlteracao, MappingBase.MapManutencao("Alteracao"));
        }
    }
}
